﻿using System;

namespace Asteroids.Entities
{
    /// <summary>
    /// The base class for all components
    /// </summary>
    public abstract class Component
    {
        private Type _typeID = null;

        /// <summary>
        /// Initializes a new instance of Component
        /// </summary>
        protected Component()
        {
            _typeID = GetType();
            Reset();
        }

        /// <summary>
        /// Gets the type of this component
        /// </summary>
        public Type ComponentType
        { get { return _typeID; } }

        /// <summary>
        /// Resets this instance back to its initial state
        /// </summary>
        public abstract void Reset();
    }
}
